#include "Ghost.h"
#include "Config.h"

/*
 * Constructeur vide par défaut
 */
Ghost::Ghost() :
		Mouvable() {
}

/*
 * Constructeur faisant appel au constructeur de Mouvalble(héritage)
 * en lui passant en paramètre sa position en Y et X ainsi qu'un déplacement
 * initial sur X de 1.
 */
Ghost::Ghost(int posY, int posX) :
		Mouvable(posY, posX, 1) {
	this->elemBefore = 'E'; //initialement le ghost remplace une case vide sur la matrice
	this->canLeaveJail = true; //peut quitter la prison(pas manger par le pacman)
}
/*
 * Setteur permettant de définir quel élément le ghost vient remplacer sur la matrice
 */
void Ghost::setElemBefore(char elemBefore) {
	this->elemBefore = elemBefore;
}

/*
 * Setteut permettant de définir si un ghost peut ou non quitter la 'prison'
 */
void Ghost::setCanLeaveJail(bool canLeaveJail) {
	this->canLeaveJail = canLeaveJail;
}

/*
 * Méthode permettant de demander au ghost de définir
 * dans quel direction il se dirige en fonction des valeurs
 * de ses attributs deplacementX et deplacementY
 */
void Ghost::defineDirection() {
	if (deplacementX == 1) {
		currentDirection = RIGHTDIRECTION;
	} else if (deplacementX == -1) {
		currentDirection = LEFTDIRECTION;
	} else if (deplacementY == 1) {
		currentDirection = DOWNDIRECTION;
	} else {
		currentDirection = UPDIRECTION;
	}
}

